.\" -*- nroff -*-
.\" Copyright 2010 Cisco Systems, Inc.  All rights reserved.
.\" Copyright 2006-2008 Sun Microsystems, Inc.
.\" Copyright (c) 1996 Thinking Machines Corporation
.\" Copyright 2015-2016 Research Organization for Information Science
.\"                     and Technology (RIST). All rights reserved.
.\" Copyright (c) 2020      Google, LLC. All rights reserved.
.\" $COPYRIGHT$
.TH MPI_File_read_at_all_end 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
.SH NAME
\fBMPI_File_read_at_all_end\fP \- Reads a file at explicitly specified offsets; ending part of a split collective routine (blocking).

.SH SYNTAX
.ft R
.nf
.SH C Syntax
.nf
#include <mpi.h>
int MPI_File_read_at_all_end(MPI_File \fIfh\fP, void \fI*buf\fP,
	MPI_Status \fI*status\fP)

.fi
.SH Fortran Syntax
.nf
USE MPI
! or the older form: INCLUDE 'mpif.h'
MPI_FILE_READ_AT_ALL_END(\fIFH\fP, \fIBUF\fP, \fISTATUS\fP, \fIIERROR\fP)
	<type>	\fIBUF(*)\fP
	INTEGER	\fIFH, STATUS(MPI_STATUS_SIZE), IERROR\fP

.fi
.SH Fortran 2008 Syntax
.nf
USE mpi_f08
MPI_File_read_at_all_end(\fIfh\fP, \fIbuf\fP, \fIstatus\fP, \fIierror\fP)
	TYPE(MPI_File), INTENT(IN) :: \fIfh\fP
	TYPE(*), DIMENSION(..), ASYNCHRONOUS :: \fIbuf\fP
	TYPE(MPI_Status) :: \fIstatus\fP
	INTEGER, OPTIONAL, INTENT(OUT) :: \fIierror\fP

.fi
.SH INPUT PARAMETER
.ft R
.TP 1i
fh
File handle (handle).

.SH OUTPUT PARAMETERS
.ft R
.TP 1i
buf
Initial address of buffer (choice).
.ft R
.TP 1i
status
Status object (status).
.TP 1i
IERROR
Fortran only: Error status (integer).

.SH DESCRIPTION
.ft R
MPI_File_read_at_all_end is a split collective routine that stores the number of elements actually read from the file associated with
.I fh
in
.I status.
MPI_File_read_at_all_end blocks until the operation initiated by MPI_File_read_at_all_begin completes. The data is taken out of those parts of the file specified by the current view. All other fields of
.I status
are undefined.

.SH NOTES
.ft R
All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard.

.SH ERRORS
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument.
.sp
Before the error value is returned, the current MPI error handler is
called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.

